import { reqDetail, reqAddOrUpdataCart } from '@/api'

const actions = {
  // 声明getDetail方法
  async getDetail({ commit }, skuId) {
    let result = await reqDetail(skuId)
    // console.log(result.data);
    if (result.code === 200) {  //状态码为200,则派发任务,传递数据
      commit('GETDETAIL', result.data)
    }
  },
  // 发请求获取购物车
  async getaddcart({ commit, state, dispatch, getters }, { skuId, skuNum }) {
    let res = await reqAddOrUpdataCart(skuId, skuNum)
    if (res.code === 200) {
      // console.log(res);
      return 'ok';
    } else {
      return Promise.reject(new Error('加入购物车失败'))
    }
  }

};

const mutations = {
  GETDETAIL(state, value) {
    state.detailobj = value
  }
};
const state = {
  detailobj: {}  //存放detail数据的空对象
};

const getters = {
  // 手机的名字和一二三级id
  categoryView(state) {
    return state.detailobj.categoryView || {}  //为了避免数据请求没回来,给个空对象不会报错
  },
  // 手机的介绍详情
  skuInfo(state) {
    return state.detailobj.skuInfo || {}
  },
  // 手机的颜色版本号数据
  spuSaleAttrList(state) {
    return state.detailobj.spuSaleAttrList || []
  },
  // 手机放大镜的图片读取
  skuImageList(state) {
    //第一次的数据可能为初始数据,服务的数据没回来,所有直接写会报错,或上一个空数据 防止报错,
    // 请求回来的数据是什么类型,就写什么类型 数组或者对象
    return state.detailobj.skuInfo?.skuImageList || []
  },
}

export default {
  actions,
  mutations,
  state,
  getters
}